<!-- 
    apply()方法可以调用一个函数，简单理解为调用函数的方式，但是可以改变函数的this指向
    fun.apply(thisArg,[argsArray])
    thisArg:在fun函数运行时指定的this值
    argsArray：传递的值，必须包含在数组里面
    返回值就是函数的返回值，因为它就是调用函数
 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        var o = {
            name: 'andy'
        };
        function fn(arr) {
            console.log(this);  //这里的this指向window。 
            console.log(arr);   //打印的字符串，而不是数组
        };
        fn.apply(o, ['pink']);  //这里的参数必须是数组
        //1.也是调用函数 第二个可以改变函数的this指向。
        //2.但是它的参数必须是数组(伪数组)

        //3.apply的主要应用 比如说我们可以利用 apply借助于数学内置对象求最大值或最小值
        var arr = [1, 66, 3, 88, 99];
        var max = Math.max.apply(Math, arr);
        var min = Math.min.apply(Math, arr);
        //执行步骤：先带调用这个Math这个函数，然后不用改变this指向，然后把数组传过去判断
        console.log(max, min);

    </script>
</body>

</html>